import CryptoJS from "crypto-js";

const secretKey = CryptoJS.enc.Utf8.parse("385f33cb91484b04a177828829081ab7");
const iv = CryptoJS.enc.Utf8.parse("37fa77f6a3b0462d");

/**
 * AES加密
 * @param {string} value 待加密字符串
 * @returns {string} 加密后的字符串
 */
export function aesEncryption(value) {
  const encrypted = CryptoJS.AES.encrypt(value, secretKey, {
    iv: iv, // 使用初始化向量
    mode: CryptoJS.mode.CBC, // 使用CBC模式
    padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充
  });
  return encrypted.ciphertext.toString(); // 返回加密后的字符串
}

/**
 * AES解密
 * @param {string} value 待解密字符串
 * @returns {string} 解密后的字符串
 */
export function aesDecryption(value) {
  const decrypted = CryptoJS.AES.decrypt(value, secretKey, {
    iv: iv, // 使用相同的初始化向量
    mode: CryptoJS.mode.CBC, // 使用CBC模式
    padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充
  });

  return CryptoJS.enc.Utf8.stringify(decrypted); // 返回解密后的字符串
}
